package cn.zhfeat.hatch.rpc;

import java.util.List;

import cn.zhfeat.hatch.dto.company.CompanyDepartmentDto;
import cn.zhfeat.hatch.entity.company.CompanyDepartment;
import com.github.pagehelper.PageInfo;



/**
 * @description: 部门业务服务相关RPC接口
 *
 * @author ZhangHao
 * @date 2018年5月10日 上午9:40:14 
 * @version 1.0.0.1
 */
public interface IDepartmentRpcService {
	
	
	/**
	 * @description: 插入企业部门数据并返回自增id
	 *
	 * @param entity
	 * @return 
	 * @author ZhangHao
	 * @date 2018年5月10日 上午9:45:53 
	 * @version 1.0.0.1
	 */
	public CompanyDepartment insertSelective(CompanyDepartment entity);

	
	/**
	 * @description: 根据主键ID更新部门数据，如果id为null或updateTime为null则返回0，标识更新失败
	 *		逻辑删除也调用此方法。
	 *
	 * @param entity
	 * @return 
	 * @author ZhangHao
	 * @date 2018年5月10日 上午9:47:25 
	 * @version 1.0.0.1
	 */
	public Integer updateSelective(CompanyDepartment entity);
	
	
	/**
	 * @description: 企业部门查询接口，无需分页
	 * 
	 * @param dto
	 * @return 
	 * @author ZhangHao
	 * @date 2018年5月10日 上午9:49:06 
	 * @version 1.0.0.1
	 */
	public List<CompanyDepartment> findListByDto(CompanyDepartmentDto dto);
	
	
	/**
	 * @description: 根据父部门编码查询其对应的全部子部门,无需分页
	 *
	 * @param dto
	 * @return 
	 * @author ZhangHao
	 * @date 2018年5月10日 上午10:25:25 
	 * @version 1.0.0.1
	 */
	public List<CompanyDepartment> findListbyParentDeptId(CompanyDepartmentDto dto);
	
	/**
	 * 
	 * @Description: 根据条件查询部门信息
	 * 
	 * @author: ZhangHao
	 * @date:   2018年5月19日 上午9:57:18    
	 * @version 1.0.0.1
	 */
	public CompanyDepartment getCompanyDepartment(CompanyDepartmentDto departmentDto);
	
	/**
	 * @description: 部门分页
	 *			
	 * @return 
	 * @author ZhangHao
	 * @date 2018年5月26日 上午9:52:25 
	 * @version 1.0.0.1
	 */
	public PageInfo<CompanyDepartment> ajaxPageInfoByDto(CompanyDepartmentDto dto);
	
	/**
	 * @description: 获取部门列表
	 *
	 * @param dto
	 * @return 
	 * @author ZhangHao
	 * @date 2018年7月21日 下午4:01:11 
	 * @version 1.0.0.1
	 */
	List<CompanyDepartment> listDepartment(CompanyDepartmentDto dto);
	
}
